package com.resifind.www.service;

import com.resifind.www.exception.Resp;
import com.resifind.www.po.User;
import com.resifind.www.po.UserFullInfo;

/**
 * @author 36069
 */
public interface UserService {

    /**
     * 注册
     * <p>
     * 校验手机号是否已注册，密码长度是否合法，用户类型是否合法。
     * 添加用户表，再根据用户类型添加客户或商户表。
     * </p>
     *
     * @param phoneNum 手机号
     * @param password 密码
     * @param userType 用户类型
     * @return 注册结果
     */
    Resp<String> register(String phoneNum, String password, String userType);

    /**
     * 用户登录
     *
     * @param phoneNum 手机号
     * @param password 密码
     * @return 登录用户类型
     */
    Resp<User> login(String phoneNum, String password);

    /**
     * 修改密码
     * <p>
     * 校验手机号是否已注册，新密码是否合法。
     * </p>
     *
     * @param phoneNum 手机号
     * @param newPassword 新密码
     * @return 结果
     */
    Resp<String> forgetPassword(String phoneNum, String newPassword);

    /**
     * 检查登录状态
     * <p>
     * 检查是否登录；
     * 检查登录的是客户还是商户
     * </p>
     *
     * @param user 用户对象
     * @return 登录的用户对象，未返回null
     */
    Resp<UserFullInfo<Object>> checkLogin(User user);

}
